1. Technical Field
The present invention relates to network switching and more particularly, to methods and systems controlling network data traffic on half-duplex and full-duplex media in switched networks.
2. Background Art
Switched local area networks use a network switch for supplying data frames between network stations, where each network station is connected to the network switch by a media. The switched local area network architecture uses a media access control (MAC) enabling network interface cards to access the media. The network switch passes data frames received from a transmitting station to a destination station based on the header information in the received data frame.
Network congestion occurs if a receiving network element, for example a receiving network station, is unable to receive data at a rate greater than or equal to the transmission rate of the transmitting element. For example, traffic in a client-server environment is dominated by client requests followed by a burst of frames from the server to the requesting client. Hence, only a limited number of client requests can be output to the server from the switched hub at the assigned switching port. If the number of client requests exceeds the capacity of the server's port, some of the data packets will be lost. In another example, a client having limited buffer space may be unable to keep up with the transmission rate of a transmitting station, resulting in lost packets. Finally, network congestion may occur if a transmitting station attempts to transmit data packets to a receiving station that is already receiving data packets from another transmitting station. Hence, a receiving station may be unable to keep up with reception of data packets from two separate transmitting stations.
Flow control has been proposed to reduce network congestion, where a sending station temporarily suspends transmission of data packets. A proposed flow control arrangement for a duplex environment, referred to as IEEE 802.3x[2], specifies generation of a flow control message, for example a PAUSE frame. A transmitting station that receives the PAUSE frame enters a PAUSE station in which no frames are sent on the network for a time interval specified in the PAUSE frame. A proposed flow control arrangement for a half-duplex environment, referred to as "back-pressure," causes a receiving station to force a collision with the transmitting station when the receive buffer of the receive station reaches a "receive buffer unavailable" state.
The disclosed flow control proposals, however, assume that flow control should be initiated when a receive buffer is full, which still results in a loss of data. Moreover, the existing proposals do not describe how to determine the instance in which flow control should be initiated. The problem also becomes more complex in a switched environment, where a network switch must route data packets received from a plurality of transmitting stations to the appropriate destination stations. Moreover, if the flow control duration is too short, a receiving station may still lose portions of the transmitted data. If the duration is too long, the transmitting station remains idle, reducing network throughput.
A more fundamental problem is that a network switch tends to have buffers having fixed sizes. Hence, the network switch is incapable of accommodating changes in network traffic due to dynamic characteristics within the network. For example, different network stations may encounter increased activity at different times, whereas other network stations may reach an idle condition. The buffers of an idle station would be underutilized, whereas the buffers of a busy station would tend to become overloaded, requiring flow control to reduce congestion of the overloaded buffers. Hence, the necessity of flow control reduces the bandwidth efficiency of the network, and the use of network ports having predetermined buffer sizes increases the risk of dropped frames on overloaded network ports, while buffers on idle ports remain unutilized.